Ehtolausekkeissa voidaan käyttää mm. vertailuoperaattoreita (engl. comparison operators), joiden avulla testataan muuttujien arvoja. Näitä vertailuoperaattoreita ovat mm. & lt; (pienempi kuin) ja == (yhtä suuri kuin). Ehtolausekkeeseen voi laittaa useita vertailuja peräkkäin käyttämällä niiden välissä loogisia operaattoreita (engl. boolean ope rators), joita ovat mm. || (tai eli or) ja && (ja eli and). Kaikki Tcl-kielen operaattorit löytyvät taulukosta 4.3. Operaattorit palauttavat arvon tosi (1), jos lauseke toteutuu. Muulloin ne palauttavat arvon epätosi (0). Esimerkissä
set laskuri 99
if {($laskuri > 0) && ($laskuri < 100) } {
;#sisäkkäisiä if -komentoja
if { ($laskuri == 50) || ($laskuri == 80) } {
set laskuri 500
}
}
set laskuri
=> 99
sijoitettaisiin laskuri-muuttujan arvoksi 500, jos muuttujan arvo olisi ennestään joko 50 tai 80.
Loogisten operaattoreiden käytöstä on hyvä tietää, että niiden osaehdot suoritetaan järjestyksessä vasemmalta oikealle. Osaehtoja suoritetaan vain niin monta kuin on tarpeellista, jotta koko ehdon toteutuminen saadaan selville. Esimerkiksi, jos lauseessa
($x > 0) && ($x < 100) && ($x != 50)
ensimmäinen osaehto ei toteudu, ei jälkimmäisiä osaehtoja suoriteta ollenkaan. && -operaattori vaatii, että kaikki osaehdot toteutuvat palauttaakseen arvon tosi. Koska ensimm& auml;inen osaehto oli epätosi, voi && -operaattori palauttaa arvon epätosi. Jos ensimmäinen osaehto toteutuisi, jatkettaisiin osaehtojen suorittamista. ||-operaattoria käy tettäessä toteutetaan osaehtoja niin kauan, kunnes tulee ensimmäinen tosi osaehto. || -operaattori nimittäin palauttaa arvon tosi, jos jokin sen osaehdoista on tosi.
Taulukkoon 4.3 on listattu kaikki käytettävissä olevat lausekkeissa (engl. expression) esiintyvät operaattorit, joita ovat bitti-, lasku- ja vertailuoperaattorit sekä loogiset operaattorit.
Matemaattiset operaattorit |
|
-a |
a:n vastaluku |
a*b |
a kertaa b |
a/b |
a jaettuna b:llä |
a%b |
a modulo b (eli jakojäännös) |
a+b |
a ynnä b |
a-b |
a miinus b |
a<b |
a pienempi kuin b |
a>b |
a suurempi kuin b |
a<=b |
a pienempi tai yhtä suuri kuin b |
a>=b |
a suurempi tai yhtä suuri kuin b |
a==b |
a yhtä suuri kuin b |
a!=b |
a erisuuri kuin b |
Loogiset operaattorit |
|
!a |
Looginen vastakohta a:lle |
a&&b |
Looginen ja |
a||b |
Looginen tai |
a?b:c |
Vaihtoehto: jos a, niin b, muuten c |
Bittioperaattorit |
|
~a |
a:n komplementti (bittilukuna) |
a<<b |
a:n siirto b:n bitin verran vasemmalle |
a>>b |
a:n siirto b:n bitin verran oikealle |
a&b |
a ja b |
a^b |
Poissulkeva tai |
a|b |
Tai |
Taulukko 4.3. Tcl-kielen sallitut operaattorit.